package com.czm.art_light.param.response;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * 作品详细信息 响应DTO
 */
@Schema(description = "作品详细信息 响应DTO")
@EqualsAndHashCode(callSuper = false)
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ArtWorkInfoRespDto implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 作品id
     */
    @Schema(description = "作品id")
    private Integer id;

    /**
     * 作品名称
     */
    @Schema(description = "作品名称")
    private String title;

    /**
     * 作品描述
     */
    @Schema(description = "作品描述")
    private String description;

    /**
     * 是否喜欢（1 true表示喜欢，0 false表示不喜欢）
     */
    @Schema(description = "是否喜欢（1 true表示喜欢，0 false表示不喜欢）")
    private Boolean isLiked;

    /**
     * 作品主图
     */
    @Schema(description = "作品主图")
    private String primaryImageUrl;

    /**
     * 作品主图小图
     */
    @Schema(description = "作品主图小图")
    private String primaryImageSmallUrl;

    /**
     * 作品所属的话题基本信息（可能属于多个话题）
     */
    @Schema(description = "作品所属的话题基本信息（可能属于多个话题）")
    private List<ArtTopicBasicInfoRespDto> artTopicBasicInfoRespDtoList;

    /**
     * 作品所属的类别基本信息（可能属于多个类别）
     */
    @Schema(description = "作品所属的类别基本信息（可能属于多个类别）")
    private List<ArtCategoryBasicInfoRespDto> artCategoryBasicInfoRespDtoList;


    /**
     * 作品所属的艺术家基本信息（可能属于多个艺术家）
     */
    @Schema(description = "作品所属的艺术家基本信息（可能属于多个艺术家）")
    private List<ArtArtistBasicInfoRespDto> artArtistBasicInfoRespDtoList;

    /**
     * 作品所属的流派基本信息（可能属于多个流派）
     */
    @Schema(description = "作品所属的流派基本信息（可能属于多个流派）")
    private List<ArtMovementBasicInfoRespDto> artMovementBasicInfoRespDtoList;
}
